package leetcode;

import java.util.*;

public class LeetCodeMain99 {
    public List<Integer> grayCode(int n) {
        List<Integer> list=new ArrayList<>();
        for (int i = 0; i < 1<<n; i++) {
            list.add((i>>1)^i);
        }
        return list;
    }
    public int[][] generateMatrix(int n) {
        int[][] arr=new int[n][n];
        int i=0;
        int j=0;
        int count=1;
        int x=n-1;
        int y=n-1;
        while (i<=x&&j<=y){
            for (int t = j; t <= y; t++) {
                arr[i][t]=count++;
            }
            i++;
            if (i>x){
                break;
            }
            for (int t = i; t <= x; t++) {
                arr[t][y]=count++;
            }
            y--;
            if (j>y){
                break;
            }
            for (int t = y; t >= j; t--) {
                arr[x][t]=count++;
            }
            x--;
            if (i>x){
                break;
            }
            for (int t = x; t >=i ; t--) {
                arr[t][j]=count++;
            }
            j++;
        }
        return arr;
    }
    public int findRepeatNumber(int[] nums) {
//        Set<Integer> set=new HashSet<>();
//        for (int num:nums) {
//            if (set.contains(num)){
//                return num;
//            }
//            set.add(num);
//        }
        Arrays.sort(nums);
        for (int i = 1; i < nums.length; i++) {
            if (nums[i-1]==nums[i]){
                return nums[i];
            }
        }
        return 0;
    }
}
